package com.zmn.oms.business.interfaces.orderfinalpricequotation;

import com.zmn.oms.common.dio.finalpricequotation.OrderFinalPriceQuotationDataDIO;
import com.zmn.oms.common.dro.finalpricequotation.OrderFinalPriceQuotationDRO;
import com.zmn.oms.common.dto.OmsOperator;
import com.zmn.oms.model.entity.orderfinalpricequotation.OrderFinalPriceQuotation;
import com.zmn.oms.model.entity.product.OrderProduct;
import com.zmn.oms.model.entity.work.OrderWork;

/**
 * 描述: 一口价订单报价表接口类
 *
 * @author chengguang
 * @since  2022/09/19 16:14
 */
public interface OrderFinalPriceQuotationBService {


    /**
     * 描述: 获取一口价订单信息
     *
     * @param orderId 订单id
     * @param workId  工作id
     * @return {@link OrderFinalPriceQuotationDRO }
     * @author chengguang
     * @since 2022/09/22
     */
    OrderFinalPriceQuotationDRO getOrderFinalPriceQuotationByOrderIdAndWorkId(Long orderId,Long workId);


//    /**
//     * 描述: 根据当前信息对比查询有修改的信息
//     *
//     * @param orderFinalPriceQuotationHistoryQuery 一口价订单对比查询信息
//     * @return {@link OrderFinalPriceQuotationHistoryDRO }
//     * @author chengguang
//     * @since 2022/09/22
//     */
//    OrderFinalPriceQuotationHistoryDRO getOrderFinalPriceQuotationHistoryByOfpQuery(OrderFinalPriceQuotationHistoryQuery orderFinalPriceQuotationHistoryQuery);

    /**
     * 描述: 初始化一口价订单数据
     *
     * @param orderFinalPriceQuotationDataDIO
     * @author chengguang
     * @since 2022/09/24
     */
    void initOrderFinalPriceQuotationData(OrderFinalPriceQuotationDataDIO orderFinalPriceQuotationDataDIO);

    /**
     * 保存提前报价信息
     * @param operator 操作信息
     * @param quotation 提前报价信息
     * @param orderWork 工单信息
     * @param orderProduct 服务产品信息
     */
    void saveOrderFinalPriceQuotation(OmsOperator operator, OrderFinalPriceQuotation quotation, OrderWork orderWork, OrderProduct orderProduct);

    /**
     * 更新提前报价信息
     * @param operator 操作信息
     * @param quotation 提前报价信息
     * @param orderWork 工单信息
     * @param orderProduct 服务产品信息
     */
    void updateOrderFinalPriceQuotation(OmsOperator operator, OrderFinalPriceQuotation quotation, OrderWork orderWork, OrderProduct orderProduct);
}

